package com.hyt.it.ogt.ykcj.domain.vo;

import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

import io.swagger.annotations.ApiModelProperty;

@JsonIgnoreProperties(ignoreUnknown = true)
public class AddEnterpriseExamineeInfoVo {

    /** ID */
    @ApiModelProperty(value = "ID")
    private String id;

    /** 考试ID */
    @ApiModelProperty(value = "考试ID")
    private String examId;

    /** 考生名字 */
    @ApiModelProperty(value = "考生名字")
    private String name;

    /** 准考证号 */
    @ApiModelProperty(value = "准考证号")
    private String admissionNo;

    /** 身份证号 */
    @ApiModelProperty(value = "身份证号")
    private String idcard;

    /** 性别 */
    @ApiModelProperty(value = "性别")
    private String sex;

    /** 联系方式 */
    @ApiModelProperty(value = "联系方式")
    private String mobile;

    /** 学历 */
    @ApiModelProperty(value = "学历")
    private String education;

    /** 专业 */
    @ApiModelProperty(value = "专业")
    private String major;

    /** 是否合格,默认空。Y-合格，N-未合格 */
    @ApiModelProperty(value = "是否合格,默认空。Y-合格，N-未合格 ")
    private String qualifiedStatus;


    /** 是否已归档,默认否。Y-已归档，N-未归档 */
    @ApiModelProperty(value = "是否已归档,默认否。Y-已归档，N-未归档")
    private String archivedStatus;

    /** 归档时间 */
    @ApiModelProperty(value = "归档时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date archivedDate;

    /** 企业招聘考生信息科目成绩对象 */
    @ApiModelProperty(value = "企业招聘考生信息科目成绩对象")
    private List<AddEnterpriseExamineeSubjectGradeVo> gradeList;


    /** 科目ID */
    @ApiModelProperty(value = "科目ID")
    private String subjectId;

    /** 科目名称 */
    @ApiModelProperty(value = "科目名称")
    private String subjectName;


    /** 备注 */
    @ApiModelProperty(value = "备注")
    private String remarks;

    /** 数据来源：(0：后台操作；1：同步 )*/
    @ApiModelProperty(value = "数据来源：(0：后台操作；1：同步 )")
    private String origin;

    /** 总分*/
    @ApiModelProperty(value = "总分")
    private BigDecimal score;




    public String getOrigin() {
        return origin;
    }

    public void setOrigin(String origin) {
        this.origin = origin;
    }

    public void setId(String id)
    {
        this.id = id;
    }
    public String getId()
    {
        return id;
    }

    public void setExamId(String examId)
    {
        this.examId = examId;
    }
    public String getExamId()
    {
        return examId;
    }

    public void setName(String name)
    {
        this.name = name;
    }
    public String getName()
    {
        return name;
    }

    public void setAdmissionNo(String admissionNo)
    {
        this.admissionNo = admissionNo;
    }
    public String getAdmissionNo()
    {
        return admissionNo;
    }

    public void setIdcard(String idcard) {

        this.idcard = idcard;
    }
    public String getIdcard()
    {
        return idcard;
    }

    public void setSex(String sex)
    {
        this.sex = sex;
    }
    public String getSex()
    {
        return sex;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getEducation() {
        return education;
    }

    public void setEducation(String education) {
        this.education = education;
    }

    public String getMajor() {
        return major;
    }

    public void setMajor(String major) {
        this.major = major;
    }

    public String getQualifiedStatus() {
        return qualifiedStatus;
    }

    public void setQualifiedStatus(String qualifiedStatus) {
        this.qualifiedStatus = qualifiedStatus;
    }

    public void setArchivedStatus(String archivedStatus)
    {
        this.archivedStatus = archivedStatus;
    }
    public String getArchivedStatus()
    {
        return archivedStatus;
    }

    public void setArchivedDate(Date archivedDate) { this.archivedDate = archivedDate; }
    public Date getArchivedDate()
    {
        return archivedDate;
    }

    public List<AddEnterpriseExamineeSubjectGradeVo> getGradeList() {
        return gradeList;
    }

    public void setGradeList(List<AddEnterpriseExamineeSubjectGradeVo> gradeList) {
        this.gradeList = gradeList;
    }

    public String getSubjectId() { return subjectId; }
    public void setSubjectId(String subjectId) { this.subjectId = subjectId; }

    public String getSubjectName() { return subjectName; }
    public void setSubjectName(String subjectName) { this.subjectName = subjectName; }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public BigDecimal getScore() {
        return score;
    }

    public void setScore(BigDecimal score) {
        this.score = score;
    }



    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("examId", getExamId())
                .append("name", getName())
                .append("admissionNo", getAdmissionNo())
                .append("idcard", getIdcard())
                .append("sex", getSex())
                .append("mobile", getMobile())
                .append("education", getEducation())
                .append("qualifiedStatus", getQualifiedStatus())
                .append("major", getMajor())
                .append("archivedStatus", getArchivedStatus())
                .append("archivedDate", getArchivedDate())
                .append("gradeList", getGradeList())
                .append("remarks", getRemarks())
                .append("origin", getOrigin())
                .append("score", getScore())
                .toString();
    }

    public Map toMap() {
        Map<String, String> map = new HashMap<>();
        map.put("admissionNo", getAdmissionNo());
        map.put("name", getName());
        map.put("sex", getSex());
        map.put("idcard", getIdcard());
        map.put("mobile", getMobile());
        map.put("education", getEducation());
        map.put("qualifiedStatus", getQualifiedStatus());
        map.put("major", getMajor());
        map.put("origin", getOrigin());
        map.put("score", getScore().toString());
        return map;
    }
}
